<?php
namespace app\api\controller;

use app\api\model\Dept as DeptModel;
use think\Db;

class Dept
{

// 组装树
    public function Createtree()
    {
        $objArr = array();

        // $arr = array(
        //     array("deptid" => 1, "parentid" => 0, 'deptname' => '栏目一'),
        //     array("deptid" => 2, "parentid" => 0, 'deptname' => '栏目二'),
        //     array("deptid" => 3, "parentid" => 1, 'deptname' => '栏目三'),
        //     array("deptid" => 4, "parentid" => 2, 'deptname' => '栏目四'),
        //     array("deptid" => 5, "parentid" => 1, 'deptname' => '栏目五'),
        //     array("deptid" => 6, "parentid" => 5, 'deptname' => '栏目六'),

        // );

        $arr = Db::query('select * from sys_dept');

        $refer = array();
        $tree = array();

        foreach ($arr as $k => $v) {
            $refer[$v['deptid']] = &$arr[$k]; //创建主键的数组引用 }
            $pid = $v['parentid']; //获取当前分类的父级id

            if ($pid == 0) {
                $tree[] = &$arr[$k]; //顶级栏目
            } else {

                if (isset($refer[$pid])) {
                    $refer[$pid]['children'][] = &$arr[$k]; //如果存在父级栏目，则添加进父级栏目的子栏目数组中
                }
            }
        }

        return json(['result' => 'ok', 'data' => $tree]);

    }
/*
 *  部门管理
 *  全站使用post
 *  2018-12-13
 *  add(添加) edit(修改）index(列表) delete(删除)
 *  'code'  http状态  msg 返回数据提示  result 成功ok 失败 error,
 *
 */

//   添加部门
    public function add()
    {
        if (!($_POST)) {

            return json([
                'code' => 400,
                'msg' => '请求错误,请使用POST',
            ]);
        } else {
            $dept['deptid'] = strtotime(date('Y-m-d H:i:s', time())); //用户ID
            $dept['deptname'] = $_POST['deptname']; //用户名
            $dept['deptcode'] = $_POST['deptcode']; //密码
            $dept['parentid'] = $_POST['parentid']; //
            $dept['addtime'] = strtotime(date('Y-m-d H:i:s', time())); //添加时间
            $dept['addperson'] = 'admin'; // $_POST['addperson']; //添加人
            if ($result = DeptModel::create($dept)) {
                return json([
                    'result' => 'ok',
                    'msg' => '添加成功',
                ]);

            } else {

                return json([
                    'result' => 'error',
                    'msg' => '添加失败',
                ]);
            }
        }
    }

//   修改部门
    public function edit()
    {
        if (!($_POST)) {

            return json([
                'code' => 400,
                'msg' => '请求错误, 请使用POST',
            ]);

        } else {

            $id = $_POST['deptid']; //用户ID
            if ($id == "") {

                return json([
                    'code' => 400,
                    'msg' => 'id没传呀',
                ]);
            }
            $dept = DeptModel::get($id);
            if ($dept == "") {

                return "id 错误";
            }
            $dept['parentid'] = $_POST['parentid']; //用户ID
            $dept['deptname'] = $_POST['deptname'] != "" ? $_POST['deptname'] : $dept->deptname; //用户名
            $dept['deptcode'] = $_POST['deptcode'] != "" ? $_POST['deptcode'] : $dept->deptcode; //密码
            $dept['addtime'] = date('Y-m-d', time()); //添加时间
            $dept['addperson'] = $_POST['addperson'] != "" ? $_POST['addperson'] : $dept->addperson; //添加人

            $res = $dept->save();

            if ($res) {

                return json([
                    'result' => 'ok',
                    'msg' => '更新成功',
                ]);

            } else {

                return json([
                    'result' => 'error',
                    'msg' => '更新失败',
                ]);
            }
        }
    }

// 获取列表
    public function index()
    {

        $list = DeptModel::all();
        return json(['result' => 'ok', 'data' => $list]);
    }
// 获取列表数据
    public function getID()
    {
        if (!($_POST)) {

            return json([
                'code' => 400,
                'msg' => '请求错误,请使用POST',
            ]);

        } else {
            $parentid = $_POST['parentid'];
            $deptdata = Db::query('select * from sys_dept where parentid=' . $parentid);

            return json(['result' => 'ok', 'data' => $deptdata]);
        }

    }

// 删除数据
    public function delete()
    {
        $id = $_POST['deptid']; //用户ID

        if (!($_POST)) {
            return json([
                'code' => 400,
                'msg' => '请求错误, 请使用POST',
            ]);
        } else {

            if ($id == "") {
                return json([
                    'code' => 400,
                    'msg' => 'id没传呀',
                ]);
            }

            $dept = DeptModel::get($id);

            if ($dept) {
                $dept->delete();
                return json([
                    'result' => 'ok',
                    'msg' => '删除用户成功',
                ]);

            } else {
                return json([
                    'result' => 'error',
                    'msg' => '删除用户失败',
                ]);
            }
        }
    }

}
